feat(desktop): M6 skeleton — Electron main + preload + React renderer#31
Merged
Conversation
Replaces the M0 placeholder files in apps/desktop/ with the real skeleton.
Type-checks cleanly via tsc -p tsconfig.json (renderer). Compiling the
Electron main/preload requires installing `electron` (deferred to M6-rest
PR to keep CI install fast); tsconfig.electron.json is ready when added.
· electron/main.ts — BrowserWindow + IPC (app:version, creds:load/save,
settings:load) + lazy-loaded electron-updater hook.
· electron/preload.ts — contextBridge exposes window.deepcode = {
version, creds, settings, onUpdateDownloaded }.
· src/main.tsx — React 18 createRoot.
· src/App.tsx — Onboarding gate → Repl, with UpdateBanner.
· src/screens/Onboarding.tsx — API key form, persists via window.deepcode.
· src/screens/Repl.tsx — chat list + input box placeholder.
· src/components/UpdateBanner.tsx — "Relaunch to update vX.Y.Z" with
Later/Relaunch buttons.
· src/types/global.d.ts — TS types for window.deepcode.
· src/index.css — hand-rolled utility classes covering the Tailwind-
flavored markup; real Tailwind in M6-rest.
· tsconfig.json — switched to jsx:"react-jsx", noEmit, exclude electron.
· tsconfig.electron.json — separate config for compiling main/preload to
CommonJS once electron dep is installed.
· package.json — added react/react-dom + types as devDeps; vitest stub.
Tests: no new tests in this PR (the skeleton is structural; integration
tests arrive with Vite + Tailwind toolchain in M6-rest). Existing 476
passing, build clean across all 4 packages.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
oratis
added a commit
that referenced
this pull request
May 28, 2026
…ills/Permissions/About) (#51) All 11 planned desktop screens now have real React implementations: · Onboarding ✅ (PR #31) · REPL ✅ (PR #31) · Chat ✅ (PR #49) · Sessions ✅ (PR #49) · MCPManager ✅ (PR #49) · Settings ✅ (PR #49) · FilePanel ← NEW (tab bar, source/diff/history view switcher, Monaco placeholder for M7) · Plugins ← NEW (list + install spec input + per-plugin enable/disable + trust badge + warnings) · Skills ← NEW (sidebar list + filter + body viewer with frontmatter metadata) · Permissions ← NEW (deny/ask/allow buckets + add-rule form, view-only preview until IPC save lands) · About ← NEW (version + diagnostics + links to docs) Nav top bar updated with all 9 navigable screens (FilePanel is contextual, not nav-toggleable). App.tsx renders via switch. Plus a batch of utility CSS classes used by these screens (ml-auto, overflow-auto, hover:underline, select styling, etc.). Tests: 508 still passing. Build clean across all 4 packages. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Replaces M0 placeholders with real Electron main + preload + React renderer (Onboarding + REPL + UpdateBanner). Type-checks cleanly. Electron binary install deferred to M6-rest to keep CI install fast. 476 tests still passing.